/***********************************************************************
	filename: 	CEGUIButtonBaseProperties.h
	created:	2009.08.19
	author:		Yum
	
	purpose:	Interface to properties for ButtonBase class
*************************************************************************/

#ifndef _CEGUIButtonBaseProperties_h_
#define _CEGUIButtonBaseProperties_h_

#include "CEGUIProperty.h"


// Start of CEGUI namespace section
namespace CEGUI
{

// Start of ButtonBaseProperties namespace section
/*!
\brief
	Namespace containing all classes that make up the properties interface for the ButtonBase class
*/
namespace ButtonBaseProperties
{

	/*!
	\brief
		Property to access the state of the ClickSound for the ButtonBase.

	\par Usage:
		- Name: SizingEnabled
		- Format: "[Number]".

	*/
	class ClickSound : public Property
	{
	public:
		ClickSound() : Property(
			"ClickSound",
			"Property to get/set the sound when click this button for the ButtonBase.  Value is sound number.",
			"1")
		{}

		String	get(const PropertyReceiver* receiver) const;
		void	set(PropertyReceiver* receiver, const String& value);
	};

	/*!
	\brief
	Property to access the animation for the ButtonBase.

	\par Usage:
	- Name: BtnAnimation
	- Format: "set:[Text] name:[Text]".

	*/
	class BtnAnimation : public Property
	{
	public:
		BtnAnimation() : Property(
			"BtnAnimation",
			"Property to get/set the animation for the ButtonBase.  Value is animate name.",
			"")
		{}

		String	get(const PropertyReceiver* receiver) const;
		void	set(PropertyReceiver* receiver, const String& value);
	};

	/*!
	\brief
	Property to access the UseStandardImagery for the ButtonBase.

	\par Usage:
	- Name: UseStandardImagery
	- Format: "[Text]".

	*/
	class UseStandardImagery : public Property
	{
	public:
		UseStandardImagery() : Property(
			"UseStandardImagery",
			"",
			"")
		{}

		String	get(const PropertyReceiver* receiver) const;
		void	set(PropertyReceiver* receiver, const String& value);
	};

} // End of  ButtonBaseProperties namespace section

} // End of  CEGUI namespace section


#endif	// end of guard _CEGUIButtonBaseProperties_h_
